package com.cloudkinto.vo.order.allocate;

import com.cloudkinto.entity.AddressBookDo;
import com.cloudkinto.vo.file.FileVo;
import com.cloudkinto.vo.operate.OperateRes;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.Date;
import java.util.List;

/**
 * @author long
 * @Description 调拨计划批次
 * @Date 2025/3/12 14:19
 */
@Data
public class AllocatePlanBatchVo {

    @ApiModelProperty("发货计划id")
    private Long batchId;

    private Long companyId;

    @ApiModelProperty("目的地类型 1FBA 2三方仓")
    private Integer destinationType;

    @ApiModelProperty("发货计划编号")
    private String planNo;

    @ApiModelProperty("库存锁定状态 状态明细见pageInit")
    private Integer stockLockStatus;

    @ApiModelProperty("状态 状态明细见pageInit")
    private Integer status;

    @ApiModelProperty("地址簿id")
    private Long addressBookId;

    @ApiModelProperty("地址簿")
    private AddressBookDo addressBook;

    @ApiModelProperty("fba店铺id")
    private Long fbaShopId;

    @ApiModelProperty("fba店铺名")
    private String fbaShopName;

    @ApiModelProperty("发货仓库id")
    private Long deliveryWhId;

    @ApiModelProperty("目标仓库id")
    private Long destinationWhId;

    @ApiModelProperty("物流渠道id")
    private Long logisticsChannelId;

    @ApiModelProperty("物流跟踪号")
    private String trackingNumber;

    @ApiModelProperty("总计划发货量")
    private Integer totalPlanShipments;

    @ApiModelProperty("总实际发货量")
    private Integer totalActualShipments;

    @ApiModelProperty("总计划箱数")
    private Integer totalPlanBox;

    @ApiModelProperty("总实际箱数")
    private Integer totalActualBox;

    @ApiModelProperty("参考单号")
    private String referenceNumber;

    @ApiModelProperty("附件id")
    private String fileIds;

    @ApiModelProperty("附件列表")
    private List<FileVo> fileVoList;

    @ApiModelProperty("创建人id")
    private Long createBy;

    @ApiModelProperty("创建人名称")
    private String createByName;

    @ApiModelProperty("创建时间")
    private Date createTime;

    @ApiModelProperty("备注")
    private String remark;

    @ApiModelProperty("预计到达日期")
    private Date expectedArrivalDate;

    @ApiModelProperty("预计到达时间")
    private String expectedArrivalTime;

    @ApiModelProperty("计划发货时间")
    private Date planShipmentTime;

    @ApiModelProperty("是否加急")
    private Boolean urgent;

    @ApiModelProperty("是否打印")
    private Boolean print;

    @ApiModelProperty("推送WMS时间")
    private Date pushWmsTime;

    @ApiModelProperty("拣货提交时间")
    private Date pickingPushTime;

    @ApiModelProperty("拣货完成时间")
    private Date pickingFinishTime;

    @ApiModelProperty("出库时间")
    private Date outboundTime;

    @ApiModelProperty("取消时间(截单时间)")
    private Date cancelTime;

    @ApiModelProperty("异常时间")
    private Date exceptionTime;

    @ApiModelProperty("标记异常时间")
    private Date markExceptionTime;

    @ApiModelProperty("异常原因")
    private String exceptionReason;

    @ApiModelProperty("是否拦截")
    private Boolean interceptionFlag;

    @ApiModelProperty("三方仓发货计划列表")
    private List<AllocatePlan3rdWhItemVo> planItem3rdWhVoList;

    @ApiModelProperty("fba发货计划列表")
    private List<AllocatePlanFbaItemVo> planItemFbaVoList;

    @ApiModelProperty("日志信息")
    private List<OperateRes> operateResList;
}